package com.cell.service.user;

import com.cell.pojo.DTO.user.validation.validateCodeDTO;
import com.cell.pojo.entity.user.User;
import com.cell.pojo.entity.user.UserValidation;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author cloudJiang
 * @since 2022-06-04
 */
public interface IUserValidationService extends IService<UserValidation> {
    /**
     * 将验证码发送到用户邮箱
     *
     * @param userID 用户id，通过该值来查找用户，在用户中查找到邮箱后发送验证邮件
     *               之后将验证码值存储到用户对象中
     * @return 发送成功返回0 找不到邮箱返回1
     */
    void sendEmail(int userID);

    /**
     * 将验证码发送到手机
     *
     * @param userId
     * @return 发送成功返回0 手机号码格式有问题返回1
     */
    void sendSms(int userId);

    /**
     * 负责校验用户验证码，给其他方法调用
     *
     * @param validateCodeDTO
     * @return 成功返回0和查找到的user对象，其余情况user对象返回空，找不到用户返回1，验证码错误返回2
     */
    User validateCode(validateCodeDTO validateCodeDTO);

    /**
     * 将验证码发送到用户邮箱
     *
     * @param email 要发送验证码的邮箱
     */
    void sendEmailForLogin(String email);

    /**
     * 将验证码发送到手机
     *
     * @param phone 要发送验证码的手机
     */
    void sendSmsForLogin(String phone);

}
